from langchain.chat_models import init_chat_model
from langchain.output_parsers import ResponseSchema, StructuredOutputParser
from langchain_core.prompts import ChatPromptTemplate


model = init_chat_model(model="deepseek-chat",model_provider="deepseek")

schemas = [ResponseSchema(name="name", description="姓名"),
           ResponseSchema(name="age", description="年龄")]
parser = StructuredOutputParser.from_response_schemas(schemas)

prompt_template = ChatPromptTemplate([
    ("system","你是一个乐于助人的助手，，请根据用户的问题给出答案。"),
    ("user","请根据以下的内容提取用户信息，并返回JSON格式： \n {input} \n\n {format_instructions}")
])

chain = prompt_template.partial(format_instructions=parser.get_format_instructions()) | model | parser

result = chain.invoke({"input":"我叫赵刚，今年45岁，是一名软件工程师。"})

print(result)